package simpledb.optimizer;

/**
 * LogicalScanNode 表示逻辑查询计划（LogicalQueryPlan）中 FROM 子句里的一个表。
 * 它记录了该表在查询中的别名和实际表的标识符。
 */
public class LogicalScanNode {

    /**
     * 表在查询中使用的名称（即别名）
     * 例如：SELECT * FROM table_name AS alias_name; 中的 alias_name
     */
    public final String alias;

    /**
     * 表的实际标识符（table id）
     * 可以通过 Catalog.getDatabaseFile(tableId) 获取对应的 DbFile（数据库文件）
     */
    public final int    t;

    /**
     * 构造一个新的 LogicalScanNode 对象
     *
     * @param table 表的实际 ID（通常由 Catalog 分配）
     * @param tableAlias 表在查询中的别名
     */
    public LogicalScanNode(int table, String tableAlias) {
        this.alias = tableAlias;
        this.t = table;
    }
}
